function Person(sing) {
  this.sing = sing;
  this.jump = function () {
    console.log("jump");
  };
}
Person.prototype.rap = function () {
  console.log("rap");
};
function Children(sing, ball) {
  // this -> Children 的实例对象
  Person.call(this, sing); // 借用构造器
  this.ball = ball;
}

Children.prototype = new Person(); // 原型链继承，能继承原型上的方法

/**
 * 如果不显式地将 Children.prototype.constructor 设置为 Children，
 * 那么 Children.prototype.constructor 将会指向 Parent，
 * 因为 Children.prototype 是基于 Parent.prototype 创建的。
 * 这显然是不正确的，因为 Children.prototype 应该与 Children 构造函数相关联。
 */
Children.prototype.constructor = Children; // 将构造函数引用指向 Children
const c1 = new Children("sing1");
const c2 = new Children("sing2");
console.log(c1.sing);
console.log(c2.sing);
c1.jump();
c1.rap();
// 优点：
//
// 缺点：
//
